home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK1.toast / Development Kits (Disc 1) / QuickDraw GX / Programming Stuff / GX Libraries / LayoutFeatureConstants.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-26  |  11.6 KB  |  362 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.     File:        LayoutFeatureConstants.h
  4.     
  5.     Contains:    Constants identifying the feature types and selectors currently
  6.                 defined in the Font Feature Registry (Link: FONTREGISTRY).
  7.     
  8.     Written By:    Dave Opstad
  9.     
  10.     Copyright:    ©1992-1995 by Apple Computer, Inc.  All rights reserved.
  11.     
  12.     Change History (most recent first):
  13.     
  14.          <2>     5/25/95    DGO        Added 3 new JIS character shape selectors, at the request of
  15.                                     Canon (who are developing new GX fonts).
  16.         <4>        950525    DGO        Added three selectors for JIS choices.
  17.         <3>        1/9/95    JD        First checked in to NRBuild system.
  18.         <2>        940928    DGO        Added textSpacingType and its selectors.
  19.         <1>        921201    DGO        Created module.
  20.  
  21. */
  22.  
  23. #ifndef __LAYOUTFEATURECONSTANTS__
  24. #define __LAYOUTFEATURECONSTANTS__
  25.  
  26. #ifdef __cplusplus
  27. extern "C" {
  28. #endif
  29.  
  30. /* for compatibility with old headers */
  31. #define layoutFeatureConstantsIncludes
  32.  
  33. /* The following values can be used to set gxRunFeature values. Note that unless the
  34.     feature is defaulted differently in different fonts, the zero value for the
  35.     selectors represents the default value. */
  36.  
  37. enum {
  38.  
  39.     allTypographicFeaturesType = 0,
  40.  
  41.         allTypeFeaturesOnSelector            = 0,
  42.         allTypeFeaturesOffSelector            = 1,
  43.  
  44.     ligaturesType = 1,
  45.  
  46.         requiredLigaturesOnSelector            = 0,
  47.         requiredLigaturesOffSelector        = 1,
  48.         commonLigaturesOnSelector            = 2,
  49.         commonLigaturesOffSelector            = 3,
  50.         rareLigaturesOnSelector                = 4,
  51.         rareLigaturesOffSelector            = 5,
  52.         logosOnSelector                        = 6,
  53.         logosOffSelector                    = 7,
  54.         rebusPicturesOnSelector                = 8,
  55.         rebusPicturesOffSelector            = 9,
  56.         diphthongLigaturesOnSelector        = 10,
  57.         diphthongLigaturesOffSelector        = 11,
  58.  
  59.     cursiveConnectionType = 2,
  60.  
  61.         unconnectedSelector                    = 0,
  62.         partiallyConnectedSelector            = 1,
  63.         cursiveSelector                        = 2,
  64.  
  65.     letterCaseType = 3,
  66.  
  67.         upperAndLowerCaseSelector            = 0,
  68.         allCapsSelector                        = 1,
  69.         allLowerCaseSelector                = 2,
  70.         smallCapsSelector                    = 3,
  71.         initialCapsSelector                    = 4,
  72.         initialCapsAndSmallCapsSelector        = 5,
  73.  
  74.     verticalSubstitutionType = 4,
  75.  
  76.         substituteVerticalFormsOnSelector    = 0,
  77.         substituteVerticalFormsOffSelector    = 1,
  78.  
  79.     linguisticRearrangementType = 5,
  80.  
  81.         linguisticRearrangementOnSelector    = 0,
  82.         linguisticRearrangementOffSelector    = 1,
  83.  
  84.     numberSpacingType = 6,
  85.  
  86.         monospacedNumbersSelector            = 0,
  87.         proportionalNumbersSelector            = 1,
  88.  
  89.     appleReserved1Type = 7,
  90.  
  91.     smartSwashType = 8,
  92.  
  93.         wordInitialSwashesOnSelector        = 0,
  94.         wordInitialSwashesOffSelector        = 1,
  95.         wordFinalSwashesOnSelector            = 2,
  96.         wordFinalSwashesOffSelector            = 3,
  97.         lineInitialSwashesOnSelector        = 4,
  98.         lineInitialSwashesOffSelector        = 5,
  99.         lineFinalSwashesOnSelector            = 6,
  100.         lineFinalSwashesOffSelector            = 7,
  101.         nonFinalSwashesOnSelector            = 8,
  102.         nonFinalSwashesOffSelector            = 9,
  103.  
  104.     diacriticsType = 9,
  105.  
  106.         showDiacriticsSelector                = 0,
  107.         hideDiacriticsSelector                = 1,
  108.         decomposeDiacriticsSelector            = 2,
  109.  
  110.     verticalPositionType = 10,
  111.  
  112.         normalPositionSelector                = 0,
  113.         superiorsSelector                    = 1,
  114.         inferiorsSelector                    = 2,
  115.         ordinalsSelector                    = 3,
  116.  
  117.     fractionsType = 11,
  118.  
  119.         noFractionsSelector                    = 0,
  120.         verticalFractionsSelector            = 1,
  121.         diagonalFractionsSelector            = 2,
  122.  
  123.     appleReserved2Type = 12,
  124.  
  125.     overlappingCharactersType = 13,
  126.  
  127.         preventOverlapOnSelector            = 0,
  128.         preventOverlapOffSelector            = 1,
  129.  
  130.     typographicExtrasType = 14,
  131.  
  132.         hyphensToEmDashOnSelector            = 0,
  133.         hyphensToEmDashOffSelector            = 1,
  134.         hyphenToEnDashOnSelector            = 2,
  135.         hyphenToEnDashOffSelector            = 3,
  136.         unslashedZeroOnSelector                = 4,
  137.         unslashedZeroOffSelector            = 5,
  138.         formInterrobangOnSelector            = 6,
  139.         formInterrobangOffSelector            = 7,
  140.         smartQuotesOnSelector                = 8,
  141.         smartQuotesOffSelector                = 9,
  142.  
  143.     mathematicalExtrasType = 15,
  144.  
  145.         hyphenToMinusOnSelector                = 0,
  146.         hyphenToMinusOffSelector            = 1,
  147.         asteriskToMultiplyOnSelector        = 2,
  148.         asteriskToMultiplyOffSelector        = 3,
  149.         slashToDivideOnSelector                = 4,
  150.         slashToDivideOffSelector            = 5,
  151.         inequalityLigaturesOnSelector        = 6,
  152.         inequalityLigaturesOffSelector        = 7,
  153.         exponentsOnSelector                    = 8,
  154.         exponentsOffSelector                = 9,
  155.  
  156.     ornamentSetsType = 16,
  157.  
  158.         noOrnamentsSelector                    = 0,
  159.         dingbatsSelector                    = 1,
  160.         piCharactersSelector                = 2,
  161.         fleuronsSelector                    = 3,
  162.         decorativeBordersSelector            = 4,
  163.         internationalSymbolsSelector        = 5,
  164.         mathSymbolsSelector                    = 6,
  165.  
  166.     characterAlternativesType = 17,
  167.     
  168.         noAlternatesSelector                = 0,
  169.         
  170.         /* Additional character alternatives selectors may be defined by a font. */
  171.     
  172.     designComplexityType = 18,
  173.  
  174.         designLevel1Selector                = 0,
  175.         designLevel2Selector                = 1,
  176.         designLevel3Selector                = 2,
  177.         designLevel4Selector                = 3,
  178.         designLevel5Selector                = 4,
  179.  
  180.     styleOptionsType = 19,
  181.  
  182.         noStyleOptionsSelector                = 0,
  183.         displayTextSelector                    = 1,
  184.         engravedTextSelector                = 2,
  185.         illuminatedCapsSelector                = 3,
  186.         titlingCapsSelector                    = 4,
  187.         tallCapsSelector                    = 5,
  188.  
  189.     characterShapeType = 20,
  190.  
  191.         traditionalCharactersSelector        = 0,
  192.         simplifiedCharactersSelector        = 1,
  193.         jis1978CharactersSelector            = 2,
  194.         jis1983CharactersSelector            = 3,
  195.         jis1990CharactersSelector            = 4,
  196.  
  197.     numberCaseType = 21,
  198.  
  199.         lowerCaseNumbersSelector            = 0,
  200.         upperCaseNumbersSelector            = 1,
  201.  
  202.     textSpacingType = 22,
  203.     
  204.         proportionalTextSelector            = 0,
  205.         monospacedTextSelector              = 1,
  206.  
  207.     lastFeatureType = -1
  208. };
  209.  
  210.  
  211. /*-------------------------------------------------------------------------------------*/
  212.  
  213. /* The constants provided below are for backward compatibility only.  Use of the above
  214.  constant names is preferred. */
  215.  
  216. enum {
  217.  
  218.     typographicFeaturesType = allTypographicFeaturesType,
  219.     
  220.         enableEffectsOnSelector                 = allTypeFeaturesOnSelector,
  221.         enableEffectsOffSelector                = allTypeFeaturesOffSelector,
  222.     
  223.     ligatureType = ligaturesType,
  224.     
  225.         ligatureRequiredOnSelector              = requiredLigaturesOnSelector,
  226.         ligatureRequiredOffSelector             = requiredLigaturesOffSelector,
  227.         ligatureCommonOnSelector                = commonLigaturesOnSelector,
  228.         ligatureCommonOffSelector               = commonLigaturesOffSelector,
  229.         ligatureRareOnSelector                  = rareLigaturesOnSelector,
  230.         ligatureRareOffSelector                 = rareLigaturesOffSelector,
  231.         ligatureLogotypeOnSelector              = logosOnSelector,
  232.         ligatureLogotypeOffSelector             = logosOffSelector,
  233.         ligatureRebusOnSelector                 = rebusPicturesOnSelector,
  234.         ligatureRebusOffSelector                = rebusPicturesOffSelector,
  235.     
  236. /*  cursiveConnectionType = 2, */
  237.     
  238.         cursiveConnectionNoneSelector           = unconnectedSelector,
  239.         cursiveConnectionPartialSelector        = partiallyConnectedSelector,
  240.         cursiveConnectionFullSelector           = cursiveSelector,
  241.     
  242.     letterNumberCaseType = letterCaseType,
  243.     
  244.         letterNumberCaseUpperLowerSelector      = upperAndLowerCaseSelector,
  245.         letterNumberCaseAllUpperSelector        = allCapsSelector,
  246.         letterNumberCaseAllLowerSelector        = allLowerCaseSelector,
  247.         letterNumberCaseSmallCapsSelector       = smallCapsSelector,
  248.         letterNumberCaseUpperThenLowerSelector  = initialCapsSelector,
  249.         letterNumberCaseUpperThenSmCapsSelector = initialCapsAndSmallCapsSelector,
  250.     
  251. /*  verticalSubstitutionType = 4, */
  252.     
  253.         verticalSubstitutionOnSelector          = substituteVerticalFormsOnSelector,
  254.         verticalSubstitutionOffSelector         = substituteVerticalFormsOffSelector,
  255.     
  256.     rearrangementType = linguisticRearrangementType,
  257.     
  258.         rearrangementOnSelector                 = linguisticRearrangementOnSelector,
  259.         rearrangementOffSelector                = linguisticRearrangementOffSelector,
  260.     
  261.     numberStyleType = numberSpacingType,
  262.     
  263.         numberStyleForColumnsSelector           = monospacedNumbersSelector,
  264.         numberStyleProportionalSelector         = proportionalNumbersSelector,
  265.     
  266. /*    Note: The checkbox feature type Alternate Designs has been removed.
  267.  
  268.     Most of its settings have been divided between two new RADIO BUTTON feature types:
  269.         Design Complexity
  270.             Book Text, Sloped, and Chancery have been replaced by generic design levels.
  271.         Style Options
  272.             Engraved, Display Text, Illuminated Text, and Titling Caps have been moved.
  273.             
  274.     The Cursive setting has been eliminated. */
  275.     
  276. /*  smartSwashType = 8, */
  277.     
  278.         smartSwashWordInitialsOnSelector        = wordInitialSwashesOnSelector,
  279.         smartSwashWordInitialsOffSelector       = wordInitialSwashesOffSelector,
  280.         smartSwashWordFinalsOnSelector          = wordFinalSwashesOnSelector,
  281.         smartSwashWordFinalsOffSelector         = wordFinalSwashesOffSelector,
  282.         smartSwashLineInitialsOnSelector        = lineInitialSwashesOnSelector,
  283.         smartSwashLineInitialsOffSelector       = lineInitialSwashesOffSelector,
  284.         smartSwashLineFinalsOnSelector          = lineFinalSwashesOnSelector,
  285.         smartSwashLineFinalsOffSelector         = lineFinalSwashesOffSelector,
  286.         smartSwashArchaicNonFinalsOnSelector    = nonFinalSwashesOnSelector,
  287.         smartSwashArchaicNonFinalsOffSelector   = nonFinalSwashesOffSelector,
  288.     
  289. /*  diacriticsType = 9, */
  290.     
  291.         diacriticsShowSelector                  = showDiacriticsSelector,
  292.         diacriticsHideSelector                  = hideDiacriticsSelector,
  293.         diacriticsSerializeSelector             = decomposeDiacriticsSelector,
  294.     
  295. /*  verticalPositionType = 10, */
  296.     
  297.         verticalPositionNormalSelector          = normalPositionSelector,
  298.         verticalPositionSuperiorsSelector       = superiorsSelector,
  299.         verticalPositionInferiorsSelector       = inferiorsSelector,
  300.         verticalPositionOrdinalsSelector        = ordinalsSelector,
  301.     
  302. /*  fractionsType = 11, */
  303.     
  304.         fractionsDontFormSelector               = noFractionsSelector,
  305.         fractionsFormVerticalSelector           = verticalFractionsSelector,
  306.         fractionsFormDiagonalSelector           = diagonalFractionsSelector,
  307.     
  308.     diphthongLigaturesType = ligaturesType,
  309.     
  310. /*    diphthongLigaturesOnSelector            = 0,
  311.         diphthongLigaturesOffSelector           = 1, */
  312.     
  313.     overlappingGlyphsType = overlappingCharactersType,
  314.     
  315.         overlappingGlyphsPreventOnSelector      = preventOverlapOnSelector,
  316.         overlappingGlyphsPreventOffSelector     = preventOverlapOffSelector,
  317.     
  318. /*  typographicExtrasType = 14, */
  319.     
  320.         extrasHyphensToEmDashOnSelector         = hyphensToEmDashOnSelector,
  321.         extrasHyphensToEmDashOffSelector        = hyphensToEmDashOffSelector,
  322.         extrasHyphenToEnDashOnSelector          = hyphenToEnDashOnSelector,
  323.         extrasHyphenToEnDashOffSelector         = hyphenToEnDashOffSelector,
  324.         extrasForceUnslashedZeroOnSelector      = unslashedZeroOnSelector,
  325.         extrasForceUnslashedZeroOffSelector     = unslashedZeroOffSelector,
  326.         extrasMakeInterrobangOnSelector         = formInterrobangOnSelector,
  327.         extrasMakeInterrobangOffSelector        = formInterrobangOffSelector,
  328.     
  329.     mathExtrasType = mathematicalExtrasType,
  330.     
  331.         mathHyphenToMinusOnSelector             = hyphenToMinusOnSelector,
  332.         mathHyphenToMinusOffSelector            = hyphenToMinusOffSelector,
  333.         mathStarToMultiplyOnSelector            = asteriskToMultiplyOnSelector,
  334.         mathStarToMultiplyOffSelector           = asteriskToMultiplyOffSelector,
  335.         mathSlashToDivideOnSelector             = slashToDivideOnSelector,
  336.         mathSlashToDivideOffSelector            = slashToDivideOffSelector,
  337.         mathInequalityLigaturesOnSelector       = inequalityLigaturesOnSelector,
  338.         mathInequalityLigaturesOffSelector      = inequalityLigaturesOffSelector,
  339.         mathExponentiationOnSelector            = exponentsOnSelector,
  340.         mathExponentiationOffSelector           = exponentsOffSelector,
  341.     
  342. /*  ornamentSetsType = 16, */
  343.     
  344.         ornamentSetsNoneSelector                = noOrnamentsSelector,
  345.         ornamentSetsDingbatsSelector            = dingbatsSelector,
  346.         ornamentSetsPiCharactersSelector        = piCharactersSelector,
  347.         ornamentSetsFleuronsSelector            = fleuronsSelector,
  348.         ornamentSetsDecorativeBordersSelector   = decorativeBordersSelector,
  349.         ornamentSetsIntlSymbolsSelector         = internationalSymbolsSelector,
  350.         ornamentSetsMathSymbolsSelector         = mathSymbolsSelector,
  351.     
  352.     glyphAlternativesType = characterAlternativesType
  353.     
  354. };
  355.  
  356.  
  357. #ifdef __cplusplus
  358. }
  359. #endif
  360.  
  361. #endif /* __LAYOUTFEATURECONSTANTS__ */
  362.